In order to improve the communication and resource sharing between computer systems, data communication networks having network communication protocols were introduced. A communication network may be a local area network (LAN), a wide area network (WAN) or have the properties of both LAN and WAN. The physical transmission medium of a communication network may be a wired type or network such as copper wire, fibre optics, or coaxial cable or a wireless type of network such as radio, infrared, or microwave. One of the first LAN computer system networks was Ethernet (IEEE 802.3) which was introduced around 1982 having a bandwidth of about ten megabits per second. Another popular communication network was Token Ring (IEEE 802.5) which was introduced around 1985 with a bandwidth of around sixteen megabits per second. Around 1989 another LAN communication network system referred to as Fibre Distributed Digital Interface (FDDI) was introduced which used two optical fibers one to receive and one to transmit such that a bandwidth of one hundred megabits per second could be attained.
While LAN usually provided a means for computers and computer peripherals to communicate within a centrally located cite, a WAN provided a means for communication between users or two LANs that were physically separated. Around 1976 the X.21/X.25 communication standard was introduced for digital data transmission for WANS. In 1984 the Integrated Services Digital Network (ISDN) was introduced to allow the simultaneous communication of both speech and digital data over a WAN with about sixty-four kilobit per second bandwidth. Around 1991 Frame Relay was introduced and in 1993 Metropolitan Area Networks (MAN) were introduced which provided more that two megabit per second bandwidth.
As computer systems started to utilize more graphic images and video conferencing became more desirable, the communication of video data has become important over both LANs and WANs. While separate means for communication of video between end users could have been developed, it is desirable to simultaneously communicate video data, audio data, and digital data across a LAN and a WAN. Asynchronous Transfer Mode (ATM) for LAN and Broadband Integrated Services Digital Network (B-ISDN) for WAN communication was introduced around 1992. B-ISDN is based on ATM such that there is great similarity in LAN and WAN communication when both are using ATM standards of communication. The ATM standards for communication have been established by the ATM Forum. Of particular interest is the "ATM User-Network Interface Specification, Version 3.1, September, 1994" by the ATM Forum which specifies both the physical requirements (Physical Layer) for the ATM network and the electrical or signaling requirements for the ATM network (ATM Layer, Interim Local Management Interface, User-Network Interface Signalling).
FIG. 1 illustrates an example of an ATM network. The basis of the ATM network is the network element (NE) 100 which provides for communication amongst the end systems (ES1A-ESnA) 102a-102n and the end systems (ES1B-ESnB) 106a-106n. Network element 100 may be a private network ATM switch, public network ATM switch, a crossconnect, or an intermediate system such as a relay. The end systems (ES1A-ESnA) 102a-102n and (ES1B-ESnB) 106a-106n may be a variety of devices including a computer, a server, a printer, a video conference system, an audio system, or any other peripheral or computer device with ATM interface capability that desires to communicate or receive information over the ATM network.
The type of communication over the ATM network includes point to point, point to multipoint, multipoint to point, and multipoint to multipoint. An example of point to point is the communication of end system ES1A 102a to end system ES1B 106a. An example of point to multipoint is the communication of end system ES1A 102a to end systems ES1B through ESnB (106a-106n). An example of multipoint to multipoint is the communication of end systems ES1A through ESnA (102a-102n) to end systems ES1B through ESnB (106a-106n). Through a given ATM network the communication from one end system to another end system may have one or more logical paths in which a virtual connection could be made. The possible paths from one end system to another are referred to as the Virtual Paths (VP). Each virtual path may have one or more logical channels of communication which are referred to as Virtual Channels (VC). When a virtual channel is active it is often referred to as a virtual connection. Each VC has an associated identification number which is referred to as Virtual Channel Identifier (VCI). Each VP has an associated identification number which is referred to as Virtual Path Identifier (VPI).
ATM networks communicate using cell switching which is a form of Asynchronous time division multiplexing. The cells used in ATM are of a fixed length as opposed to packet switching which uses variable length data packets. In this manner a given ATM cell may be able to overtake a previously transmitted ATM cell and reach its destination sooner.
The ATM network architecture is organized as four independent communications layers which are based on the OSI reference model (CCITT X.200). Referring to FIG. 2A, these four layers are a physical layer 201, an ATM layer 202, an ATM Adaption Layer (AAL) 203, and Higher layers of applications 204. These four layers are linked together by three planes: a User Plane (not illustrated), a Control Plane 206, and a Management Plane 207. The ATM layer 202 specifies the transport mechanism that is used in the B-ISDN and ATM network.
Briefly, some of the various functions performed at each of the four layers is described. The physical layer 201 specifies the physical medium (PM) and transmission convergence (TC) where adaption to the transmission interface occurs. The physical medium considers the bit timing that is required and the type of connectors, cabling, impedances, and protocol used at the physical medium. At the ATM layer 202 generic flow control is considered, the cell header is generated or removed and passed to the respective next layer, the VPI/VCI address may be analyzed or translated and the ATM cells are multiplexed and demultiplexed as the case may be. At the ATM Adaption Layer 203 there is a segmentation and reassembly sublayer (SAR) and a Convergence Sublayer (CS). The convergence sublayer provides the adaption of the signal to the higher layer and its applications. The SAR sublayer provides for the segmentation of protocol data units (PDUs) into ATM cells or assembles ATM cells into PDUs that are passed to the higher layer.
Referring to FIG. 2B, the ATM layer 202 specifies the use of a fixed length ATM cell 210 or 220 to communicate over the physical layer 201. The ATM cell 210 is for communication over a User-to-Network Interface (UNI) while ATM cell 220 is for communication over a Network-to-Network Interface (NNI). ATM cell 210 consists of a Generic Flow Control (GFC) field 211, Virtual Path Identifier (VPI) field 212, Virtual Channel Identifier (VCI) field 213, Payload Type (PT) field 214, Cell Loss Priority (CLP) field 215, Header Error Control (HEC) field 216, and Cell Payload or data field 217. ATM cell 220 is similar to ATM cell 210 but eliminates the GFC field and increases the size of the VPI field 212. The ATM cell 210 and 220 are of fixed length and consists of fifty-three octets or four hundred and twenty-four bits of data.
The Generic Flow Control (GFC) field 211 consists of four bits and is used to control local functions such as access authority and the communication of ATM signals within a LAN. If the access is uncontrolled then the GFC field is logically set to all zeros. If the access is to be controlled then specific bits are set. The GFC information is not used by ATM switches and cross-connects which may overwrite these bits. The next two fields VPI 212 and VCI 213 provide the address information for the given cell payload 217. The Virtual Path Identifier (VPI) 212 identifies the path while the Virtual Channel Identifier (VCI) 213 identifies the channel that is to be used within the identified path. Payload Type (PT) field 214 is 3 bits long and identifies the type of Cell Payload whether it is a user type cell or a system type cell or some other reserved type cell. Cell Loss Priority (CLP) field 215 is a one bit field which allows for cells with higher communication priority to be separated from cells with lower communication priority. If the CLP field is set to logical one, the ATM cell is assigned to a low priority. If the CLP is set to logical zero, the ATM cell is given high priority. Cells with lower priority are discarded first if transmission capacity is exceeded. Header Error Control (HEC) field 216, an eight bit field, is an error control field and provides for detection and synchronization for the start of the Cell Payload 217.
An ATM cell may also be categorized as an Idle cell, unassigned cell, physical layer Operation and Maintenance (OAM) cell, VP/VC cell which is more commonly referred to as a data cell, or a VP/VC OAM cell. Idle cells allow the cell rate to be adjusted to the transfer medium bandwidth. Unassigned cells are cells that have a VPI or VCI value but the cell payload is blank. Physical Layer OAM cells (PLOAM) are used to transfer information concerning the physical layer. VP/VC cells are the cells used for transferring information including user data. VP/VC OAM cells allow the performance and availability of virtual paths and virtual channels to be monitored and tested.
There are four service classes for B-ISDN that specify different classes of traffic that is expected across a network. There is Service class A, Service Class B, Service Class C and Service class D. Service class A is a connection oriented service class that has a constant bit rate (CBR) and is usually for video. Service class B is a connection oriented service class which has a variable bit rate (VBR). Service class C is a connection oriented service class for bursty data services and has a variable bit rate. Service class D is a connectionless service and has a variable bit rate (VBR).
At the ATM layer, five service categories have recently been specified by the ATM forum in the "Traffic Management Specification, Version 4, ATM Forum/95-013R10, February 1996" which is attached hereto as part of the microfiche appendix and is incorporated herein by reference. These are Constant Bit Rate (CBR), Real-Time Variable Bit Rate (rt-VBR) and Non-Real-Time Variable Bit Rate (nrt-VBR) which may be collectively referred to as Variable Bit Rate, Unspecified Bit Rate (UBR), and Available Bit Rate (ABR). While CBR and VBR have previously been specified, ABR and UBR are new additions to the ATM specification. These various type of services may generate different ATM cell traffic across a path and channel. The different kind of data that needs transmitting across a network require different kinds of service classes.
For each of these different service classes there is defined a "Quality of Service" (QOS) that should be provided by any end system 102a and any network element 100. The ATM specification defines seven cell transfer performance parameters. These are cell error rate, serious cell block errors, cell misinsertion rate, mean cell transfer delay, cell loss rate, cell delay and cell delay variation. Of these, the cell loss rate, cell delay and cell delay variation are used as QOS parameters. The QOS parameters may vary with the class of service provided. In order to satisfy QOS parameters, traffic congestion must be properly managed. Traffic congestion occurs in a network because the various sources desiring to transmit ATM cells are all competing for the same time slot and there is just not enough capacity within the network to allow all sources to transmit within the time slot. Often times a network element 100, such as an ATM switch has an insufficient amount of storage capacity such that the ATM cells tend to get into a traffic jam at the ATM switch. It is desirable to properly manage the scheduling of ATM cells such that traffic congestion is reduced.
FIG. 3 illustrates constant bit rate ATM cell traffic for a given path and channel. The various end systems having a virtual connection and similar virtual channel compete for time slots within the given channel. End system 1A (ES1) 102a is transmitting a video data (V) across the network. Every third ATM cell (301, 304, 307, 310) is a video cell that requires a fairly high constant bit rate. End system 2A (ES2) is communicating digital data (D) of some sort such that each sixth ATM cell (302, 308) is a digital data cell. The digital data is transmitted at a constant bit rate. End System 3A (ES3) is transmitting audio data (A) such as a telephone call across the network at a constant bit rate so that each eighth cell (303, 311) is an audio ATM cell. This is a lower constant bit rate than that of video. To maintain the bandwidth of the channel, Idle ATM cells (305, 306, 309) were inserted into the data stream. This maintains the proper bandwidth of the channel but loses some efficiency in data transfer rate. Variable bit rate causes the data transfer rate for a given virtual path and virtual channel to change. Thus the number of cells that require being sent varies as the bit rate varies.
FIG. 4 illustrates end system 102a supporting CBR and VBR. Within the end system 102a is a network interface card (NIC) 401. NIC 401 plugs into the PCI Bus 402 within the end system 102a. NIC 401 communicates to the ATM network over a receive connection 404 and a transmit connection 406. The receive connection 404 may be a fibre optic cable or a twisted pair copper lines satisfying the necessary ATM specification. The transmit connection 406 may be a fibre optic cable or a twisted pair copper lines satisfying the necessary ATM specification. NIC 401 includes a segmentation and reassembly controller (SRC) 410 coupled to the PCI bus 402, an ATM Receiver/Transmitter 412 coupled to the SRC 410, and memory 414 coupled to the SRC 410. Optionally the NIC 401 may include a microprocessor 416 coupled to the memory 414, SRC 410 and the ATM Receiver/Transmitter 412, and a second memory 418 coupled to and for controlling the microprocessor 416. Across the PCI bus 402, NIC 401 transmits from and receives information for the end system 102a. Additionally the NIC 401 may be part of the path and channel for other end systems such that the NIC 401 would receive information from another end system by the receive connection 404 and retransmit the information out by the transmit connection 406.
FIG. 5 illustrates how the SRC 410 schedules constant bit rate ATM cell traffic. SRC 410 stores within memory 414 in a linear fashion, the scheduled VPI and VCI address information indicating the virtual path and virtual channel for the ATM cell payload that is to be transmitted at a particular time. This is analogous to a trains schedule which is fixed or static. Static schedule requires the external microprocessor 416 to update the scheduling within the memory 414. SRC 410 addresses memory 414 in a linear and circular fashion as indicated by the circular arrow 500. SRC 410 first obtains the VCI for ES1 501 that correlates with the video data of ATM cell 301 in FIG. 3. Next the VCI for ES2 502 is accessed in order to select the digital data ATM cell 302. Then the VCI for ES3 503 is accessed in order that the audio data ATM cell 303 is transmitted. Then, the VCI for ES1 is once again selected by reading the next address location and the next video data ATM cell for ES1 may be transmitted. Next, the VCI 505 for the first Idle cell 305 is selected and then the VCI 506 for the second Idle cell 306 may be selected. The next address selects the VCI 507 for ES1 that correlates with the transmission of the video ATM cell 307. In the case of constant bit rate traffic the addressing of memory 414 has a one to one mapping with the ATM cells being transmitted. In the case of variable bit rate traffic, the number of address locations for a give virtual channel and end system is increased or decreased within memory 414 while the linear addressing continues.
Available bit rate service specifies that the bit rate that is available be used so that adjustments be made in the transmission of ATM cells. FIG. 6 illustrates an example of available bit rate service for the video ATM cells being transmitted by ES1. Video ATM cells 605, 606, and 609 have replaced the idle ATM cells 305, 306, and 309 for the constant bit rate example of FIG. 3. Previously software had been used to control the traffic of available bit rate service. However software solutions for traffic control of ATM cells have not been able to support bandwidths much greater than 155 megabits per second. Computations at this rate must be performed in one ATM cell time or approximately 2.6 microseconds. In the near future it is expected that the bandwidth will increase to around 622 megabits per second in which case software solutions will be unavailable. It is desirable to have a single chip provide hardware control for ATM cell traffic flows for the various services.